package com.base.po.voip;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class ChangeRecordExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ChangeRecordExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("ID is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("ID is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Integer value) {
            addCriterion("ID =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Integer value) {
            addCriterion("ID <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Integer value) {
            addCriterion("ID >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("ID >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Integer value) {
            addCriterion("ID <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Integer value) {
            addCriterion("ID <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Integer> values) {
            addCriterion("ID in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Integer> values) {
            addCriterion("ID not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Integer value1, Integer value2) {
            addCriterion("ID between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Integer value1, Integer value2) {
            addCriterion("ID not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andParentidIsNull() {
            addCriterion("ParentID is null");
            return (Criteria) this;
        }

        public Criteria andParentidIsNotNull() {
            addCriterion("ParentID is not null");
            return (Criteria) this;
        }

        public Criteria andParentidEqualTo(String value) {
            addCriterion("ParentID =", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidNotEqualTo(String value) {
            addCriterion("ParentID <>", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidGreaterThan(String value) {
            addCriterion("ParentID >", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidGreaterThanOrEqualTo(String value) {
            addCriterion("ParentID >=", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidLessThan(String value) {
            addCriterion("ParentID <", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidLessThanOrEqualTo(String value) {
            addCriterion("ParentID <=", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidLike(String value) {
            addCriterion("ParentID like", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidNotLike(String value) {
            addCriterion("ParentID not like", value, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidIn(List<String> values) {
            addCriterion("ParentID in", values, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidNotIn(List<String> values) {
            addCriterion("ParentID not in", values, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidBetween(String value1, String value2) {
            addCriterion("ParentID between", value1, value2, "parentid");
            return (Criteria) this;
        }

        public Criteria andParentidNotBetween(String value1, String value2) {
            addCriterion("ParentID not between", value1, value2, "parentid");
            return (Criteria) this;
        }

        public Criteria andShopidIsNull() {
            addCriterion("ShopID is null");
            return (Criteria) this;
        }

        public Criteria andShopidIsNotNull() {
            addCriterion("ShopID is not null");
            return (Criteria) this;
        }

        public Criteria andShopidEqualTo(String value) {
            addCriterion("ShopID =", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidNotEqualTo(String value) {
            addCriterion("ShopID <>", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidGreaterThan(String value) {
            addCriterion("ShopID >", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidGreaterThanOrEqualTo(String value) {
            addCriterion("ShopID >=", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidLessThan(String value) {
            addCriterion("ShopID <", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidLessThanOrEqualTo(String value) {
            addCriterion("ShopID <=", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidLike(String value) {
            addCriterion("ShopID like", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidNotLike(String value) {
            addCriterion("ShopID not like", value, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidIn(List<String> values) {
            addCriterion("ShopID in", values, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidNotIn(List<String> values) {
            addCriterion("ShopID not in", values, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidBetween(String value1, String value2) {
            addCriterion("ShopID between", value1, value2, "shopid");
            return (Criteria) this;
        }

        public Criteria andShopidNotBetween(String value1, String value2) {
            addCriterion("ShopID not between", value1, value2, "shopid");
            return (Criteria) this;
        }

        public Criteria andUseridIsNull() {
            addCriterion("UserID is null");
            return (Criteria) this;
        }

        public Criteria andUseridIsNotNull() {
            addCriterion("UserID is not null");
            return (Criteria) this;
        }

        public Criteria andUseridEqualTo(String value) {
            addCriterion("UserID =", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotEqualTo(String value) {
            addCriterion("UserID <>", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridGreaterThan(String value) {
            addCriterion("UserID >", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridGreaterThanOrEqualTo(String value) {
            addCriterion("UserID >=", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLessThan(String value) {
            addCriterion("UserID <", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLessThanOrEqualTo(String value) {
            addCriterion("UserID <=", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridLike(String value) {
            addCriterion("UserID like", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotLike(String value) {
            addCriterion("UserID not like", value, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridIn(List<String> values) {
            addCriterion("UserID in", values, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotIn(List<String> values) {
            addCriterion("UserID not in", values, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridBetween(String value1, String value2) {
            addCriterion("UserID between", value1, value2, "userid");
            return (Criteria) this;
        }

        public Criteria andUseridNotBetween(String value1, String value2) {
            addCriterion("UserID not between", value1, value2, "userid");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNull() {
            addCriterion("CreateTime is null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIsNotNull() {
            addCriterion("CreateTime is not null");
            return (Criteria) this;
        }

        public Criteria andCreatetimeEqualTo(Date value) {
            addCriterion("CreateTime =", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotEqualTo(Date value) {
            addCriterion("CreateTime <>", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThan(Date value) {
            addCriterion("CreateTime >", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) {
            addCriterion("CreateTime >=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThan(Date value) {
            addCriterion("CreateTime <", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeLessThanOrEqualTo(Date value) {
            addCriterion("CreateTime <=", value, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeIn(List<Date> values) {
            addCriterion("CreateTime in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotIn(List<Date> values) {
            addCriterion("CreateTime not in", values, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeBetween(Date value1, Date value2) {
            addCriterion("CreateTime between", value1, value2, "createtime");
            return (Criteria) this;
        }

        public Criteria andCreatetimeNotBetween(Date value1, Date value2) {
            addCriterion("CreateTime not between", value1, value2, "createtime");
            return (Criteria) this;
        }

        public Criteria andBeforebIsNull() {
            addCriterion("BeforeB is null");
            return (Criteria) this;
        }

        public Criteria andBeforebIsNotNull() {
            addCriterion("BeforeB is not null");
            return (Criteria) this;
        }

        public Criteria andBeforebEqualTo(BigDecimal value) {
            addCriterion("BeforeB =", value, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebNotEqualTo(BigDecimal value) {
            addCriterion("BeforeB <>", value, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebGreaterThan(BigDecimal value) {
            addCriterion("BeforeB >", value, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("BeforeB >=", value, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebLessThan(BigDecimal value) {
            addCriterion("BeforeB <", value, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebLessThanOrEqualTo(BigDecimal value) {
            addCriterion("BeforeB <=", value, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebIn(List<BigDecimal> values) {
            addCriterion("BeforeB in", values, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebNotIn(List<BigDecimal> values) {
            addCriterion("BeforeB not in", values, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("BeforeB between", value1, value2, "beforeb");
            return (Criteria) this;
        }

        public Criteria andBeforebNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("BeforeB not between", value1, value2, "beforeb");
            return (Criteria) this;
        }

        public Criteria andChangebIsNull() {
            addCriterion("ChangeB is null");
            return (Criteria) this;
        }

        public Criteria andChangebIsNotNull() {
            addCriterion("ChangeB is not null");
            return (Criteria) this;
        }

        public Criteria andChangebEqualTo(BigDecimal value) {
            addCriterion("ChangeB =", value, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebNotEqualTo(BigDecimal value) {
            addCriterion("ChangeB <>", value, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebGreaterThan(BigDecimal value) {
            addCriterion("ChangeB >", value, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ChangeB >=", value, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebLessThan(BigDecimal value) {
            addCriterion("ChangeB <", value, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ChangeB <=", value, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebIn(List<BigDecimal> values) {
            addCriterion("ChangeB in", values, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebNotIn(List<BigDecimal> values) {
            addCriterion("ChangeB not in", values, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ChangeB between", value1, value2, "changeb");
            return (Criteria) this;
        }

        public Criteria andChangebNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ChangeB not between", value1, value2, "changeb");
            return (Criteria) this;
        }

        public Criteria andTypebIsNull() {
            addCriterion("TypeB is null");
            return (Criteria) this;
        }

        public Criteria andTypebIsNotNull() {
            addCriterion("TypeB is not null");
            return (Criteria) this;
        }

        public Criteria andTypebEqualTo(Integer value) {
            addCriterion("TypeB =", value, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebNotEqualTo(Integer value) {
            addCriterion("TypeB <>", value, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebGreaterThan(Integer value) {
            addCriterion("TypeB >", value, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebGreaterThanOrEqualTo(Integer value) {
            addCriterion("TypeB >=", value, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebLessThan(Integer value) {
            addCriterion("TypeB <", value, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebLessThanOrEqualTo(Integer value) {
            addCriterion("TypeB <=", value, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebIn(List<Integer> values) {
            addCriterion("TypeB in", values, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebNotIn(List<Integer> values) {
            addCriterion("TypeB not in", values, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebBetween(Integer value1, Integer value2) {
            addCriterion("TypeB between", value1, value2, "typeb");
            return (Criteria) this;
        }

        public Criteria andTypebNotBetween(Integer value1, Integer value2) {
            addCriterion("TypeB not between", value1, value2, "typeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebIsNull() {
            addCriterion("BeforeTimeB is null");
            return (Criteria) this;
        }

        public Criteria andBeforetimebIsNotNull() {
            addCriterion("BeforeTimeB is not null");
            return (Criteria) this;
        }

        public Criteria andBeforetimebEqualTo(Date value) {
            addCriterion("BeforeTimeB =", value, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebNotEqualTo(Date value) {
            addCriterion("BeforeTimeB <>", value, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebGreaterThan(Date value) {
            addCriterion("BeforeTimeB >", value, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebGreaterThanOrEqualTo(Date value) {
            addCriterion("BeforeTimeB >=", value, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebLessThan(Date value) {
            addCriterion("BeforeTimeB <", value, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebLessThanOrEqualTo(Date value) {
            addCriterion("BeforeTimeB <=", value, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebIn(List<Date> values) {
            addCriterion("BeforeTimeB in", values, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebNotIn(List<Date> values) {
            addCriterion("BeforeTimeB not in", values, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebBetween(Date value1, Date value2) {
            addCriterion("BeforeTimeB between", value1, value2, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andBeforetimebNotBetween(Date value1, Date value2) {
            addCriterion("BeforeTimeB not between", value1, value2, "beforetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebIsNull() {
            addCriterion("ChangeTimeB is null");
            return (Criteria) this;
        }

        public Criteria andChangetimebIsNotNull() {
            addCriterion("ChangeTimeB is not null");
            return (Criteria) this;
        }

        public Criteria andChangetimebEqualTo(Date value) {
            addCriterion("ChangeTimeB =", value, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebNotEqualTo(Date value) {
            addCriterion("ChangeTimeB <>", value, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebGreaterThan(Date value) {
            addCriterion("ChangeTimeB >", value, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebGreaterThanOrEqualTo(Date value) {
            addCriterion("ChangeTimeB >=", value, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebLessThan(Date value) {
            addCriterion("ChangeTimeB <", value, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebLessThanOrEqualTo(Date value) {
            addCriterion("ChangeTimeB <=", value, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebIn(List<Date> values) {
            addCriterion("ChangeTimeB in", values, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebNotIn(List<Date> values) {
            addCriterion("ChangeTimeB not in", values, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebBetween(Date value1, Date value2) {
            addCriterion("ChangeTimeB between", value1, value2, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andChangetimebNotBetween(Date value1, Date value2) {
            addCriterion("ChangeTimeB not between", value1, value2, "changetimeb");
            return (Criteria) this;
        }

        public Criteria andFrombIsNull() {
            addCriterion("FromB is null");
            return (Criteria) this;
        }

        public Criteria andFrombIsNotNull() {
            addCriterion("FromB is not null");
            return (Criteria) this;
        }

        public Criteria andFrombEqualTo(String value) {
            addCriterion("FromB =", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombNotEqualTo(String value) {
            addCriterion("FromB <>", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombGreaterThan(String value) {
            addCriterion("FromB >", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombGreaterThanOrEqualTo(String value) {
            addCriterion("FromB >=", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombLessThan(String value) {
            addCriterion("FromB <", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombLessThanOrEqualTo(String value) {
            addCriterion("FromB <=", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombLike(String value) {
            addCriterion("FromB like", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombNotLike(String value) {
            addCriterion("FromB not like", value, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombIn(List<String> values) {
            addCriterion("FromB in", values, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombNotIn(List<String> values) {
            addCriterion("FromB not in", values, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombBetween(String value1, String value2) {
            addCriterion("FromB between", value1, value2, "fromb");
            return (Criteria) this;
        }

        public Criteria andFrombNotBetween(String value1, String value2) {
            addCriterion("FromB not between", value1, value2, "fromb");
            return (Criteria) this;
        }

        public Criteria andBeforesIsNull() {
            addCriterion("BeforeS is null");
            return (Criteria) this;
        }

        public Criteria andBeforesIsNotNull() {
            addCriterion("BeforeS is not null");
            return (Criteria) this;
        }

        public Criteria andBeforesEqualTo(BigDecimal value) {
            addCriterion("BeforeS =", value, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesNotEqualTo(BigDecimal value) {
            addCriterion("BeforeS <>", value, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesGreaterThan(BigDecimal value) {
            addCriterion("BeforeS >", value, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("BeforeS >=", value, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesLessThan(BigDecimal value) {
            addCriterion("BeforeS <", value, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesLessThanOrEqualTo(BigDecimal value) {
            addCriterion("BeforeS <=", value, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesIn(List<BigDecimal> values) {
            addCriterion("BeforeS in", values, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesNotIn(List<BigDecimal> values) {
            addCriterion("BeforeS not in", values, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("BeforeS between", value1, value2, "befores");
            return (Criteria) this;
        }

        public Criteria andBeforesNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("BeforeS not between", value1, value2, "befores");
            return (Criteria) this;
        }

        public Criteria andChangesIsNull() {
            addCriterion("ChangeS is null");
            return (Criteria) this;
        }

        public Criteria andChangesIsNotNull() {
            addCriterion("ChangeS is not null");
            return (Criteria) this;
        }

        public Criteria andChangesEqualTo(BigDecimal value) {
            addCriterion("ChangeS =", value, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesNotEqualTo(BigDecimal value) {
            addCriterion("ChangeS <>", value, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesGreaterThan(BigDecimal value) {
            addCriterion("ChangeS >", value, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("ChangeS >=", value, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesLessThan(BigDecimal value) {
            addCriterion("ChangeS <", value, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesLessThanOrEqualTo(BigDecimal value) {
            addCriterion("ChangeS <=", value, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesIn(List<BigDecimal> values) {
            addCriterion("ChangeS in", values, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesNotIn(List<BigDecimal> values) {
            addCriterion("ChangeS not in", values, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ChangeS between", value1, value2, "changes");
            return (Criteria) this;
        }

        public Criteria andChangesNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("ChangeS not between", value1, value2, "changes");
            return (Criteria) this;
        }

        public Criteria andTypesIsNull() {
            addCriterion("TypeS is null");
            return (Criteria) this;
        }

        public Criteria andTypesIsNotNull() {
            addCriterion("TypeS is not null");
            return (Criteria) this;
        }

        public Criteria andTypesEqualTo(Integer value) {
            addCriterion("TypeS =", value, "types");
            return (Criteria) this;
        }

        public Criteria andTypesNotEqualTo(Integer value) {
            addCriterion("TypeS <>", value, "types");
            return (Criteria) this;
        }

        public Criteria andTypesGreaterThan(Integer value) {
            addCriterion("TypeS >", value, "types");
            return (Criteria) this;
        }

        public Criteria andTypesGreaterThanOrEqualTo(Integer value) {
            addCriterion("TypeS >=", value, "types");
            return (Criteria) this;
        }

        public Criteria andTypesLessThan(Integer value) {
            addCriterion("TypeS <", value, "types");
            return (Criteria) this;
        }

        public Criteria andTypesLessThanOrEqualTo(Integer value) {
            addCriterion("TypeS <=", value, "types");
            return (Criteria) this;
        }

        public Criteria andTypesIn(List<Integer> values) {
            addCriterion("TypeS in", values, "types");
            return (Criteria) this;
        }

        public Criteria andTypesNotIn(List<Integer> values) {
            addCriterion("TypeS not in", values, "types");
            return (Criteria) this;
        }

        public Criteria andTypesBetween(Integer value1, Integer value2) {
            addCriterion("TypeS between", value1, value2, "types");
            return (Criteria) this;
        }

        public Criteria andTypesNotBetween(Integer value1, Integer value2) {
            addCriterion("TypeS not between", value1, value2, "types");
            return (Criteria) this;
        }

        public Criteria andBeforetimesIsNull() {
            addCriterion("BeforeTimeS is null");
            return (Criteria) this;
        }

        public Criteria andBeforetimesIsNotNull() {
            addCriterion("BeforeTimeS is not null");
            return (Criteria) this;
        }

        public Criteria andBeforetimesEqualTo(Date value) {
            addCriterion("BeforeTimeS =", value, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesNotEqualTo(Date value) {
            addCriterion("BeforeTimeS <>", value, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesGreaterThan(Date value) {
            addCriterion("BeforeTimeS >", value, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesGreaterThanOrEqualTo(Date value) {
            addCriterion("BeforeTimeS >=", value, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesLessThan(Date value) {
            addCriterion("BeforeTimeS <", value, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesLessThanOrEqualTo(Date value) {
            addCriterion("BeforeTimeS <=", value, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesIn(List<Date> values) {
            addCriterion("BeforeTimeS in", values, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesNotIn(List<Date> values) {
            addCriterion("BeforeTimeS not in", values, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesBetween(Date value1, Date value2) {
            addCriterion("BeforeTimeS between", value1, value2, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andBeforetimesNotBetween(Date value1, Date value2) {
            addCriterion("BeforeTimeS not between", value1, value2, "beforetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesIsNull() {
            addCriterion("ChangeTimeS is null");
            return (Criteria) this;
        }

        public Criteria andChangetimesIsNotNull() {
            addCriterion("ChangeTimeS is not null");
            return (Criteria) this;
        }

        public Criteria andChangetimesEqualTo(Date value) {
            addCriterion("ChangeTimeS =", value, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesNotEqualTo(Date value) {
            addCriterion("ChangeTimeS <>", value, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesGreaterThan(Date value) {
            addCriterion("ChangeTimeS >", value, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesGreaterThanOrEqualTo(Date value) {
            addCriterion("ChangeTimeS >=", value, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesLessThan(Date value) {
            addCriterion("ChangeTimeS <", value, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesLessThanOrEqualTo(Date value) {
            addCriterion("ChangeTimeS <=", value, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesIn(List<Date> values) {
            addCriterion("ChangeTimeS in", values, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesNotIn(List<Date> values) {
            addCriterion("ChangeTimeS not in", values, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesBetween(Date value1, Date value2) {
            addCriterion("ChangeTimeS between", value1, value2, "changetimes");
            return (Criteria) this;
        }

        public Criteria andChangetimesNotBetween(Date value1, Date value2) {
            addCriterion("ChangeTimeS not between", value1, value2, "changetimes");
            return (Criteria) this;
        }

        public Criteria andFromsIsNull() {
            addCriterion("FromS is null");
            return (Criteria) this;
        }

        public Criteria andFromsIsNotNull() {
            addCriterion("FromS is not null");
            return (Criteria) this;
        }

        public Criteria andFromsEqualTo(String value) {
            addCriterion("FromS =", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsNotEqualTo(String value) {
            addCriterion("FromS <>", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsGreaterThan(String value) {
            addCriterion("FromS >", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsGreaterThanOrEqualTo(String value) {
            addCriterion("FromS >=", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsLessThan(String value) {
            addCriterion("FromS <", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsLessThanOrEqualTo(String value) {
            addCriterion("FromS <=", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsLike(String value) {
            addCriterion("FromS like", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsNotLike(String value) {
            addCriterion("FromS not like", value, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsIn(List<String> values) {
            addCriterion("FromS in", values, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsNotIn(List<String> values) {
            addCriterion("FromS not in", values, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsBetween(String value1, String value2) {
            addCriterion("FromS between", value1, value2, "froms");
            return (Criteria) this;
        }

        public Criteria andFromsNotBetween(String value1, String value2) {
            addCriterion("FromS not between", value1, value2, "froms");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNull() {
            addCriterion("Remark is null");
            return (Criteria) this;
        }

        public Criteria andRemarkIsNotNull() {
            addCriterion("Remark is not null");
            return (Criteria) this;
        }

        public Criteria andRemarkEqualTo(String value) {
            addCriterion("Remark =", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotEqualTo(String value) {
            addCriterion("Remark <>", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThan(String value) {
            addCriterion("Remark >", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkGreaterThanOrEqualTo(String value) {
            addCriterion("Remark >=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThan(String value) {
            addCriterion("Remark <", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLessThanOrEqualTo(String value) {
            addCriterion("Remark <=", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkLike(String value) {
            addCriterion("Remark like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotLike(String value) {
            addCriterion("Remark not like", value, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkIn(List<String> values) {
            addCriterion("Remark in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotIn(List<String> values) {
            addCriterion("Remark not in", values, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkBetween(String value1, String value2) {
            addCriterion("Remark between", value1, value2, "remark");
            return (Criteria) this;
        }

        public Criteria andRemarkNotBetween(String value1, String value2) {
            addCriterion("Remark not between", value1, value2, "remark");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}